<?php
Class ServiciobrindadosController extends AppController
{
	var $name = 'Serviciobrindados';
	
	function index()
	{
		$this->setearSubMenu();

	}
	
	//genera una lista de los servicios que empieza con $nombre
	function listarServiciosBrindados($iLimiteInic=null, $iLimiteFin=null, $nombre='')
	{
		$iLimiteInic=empty($iLimiteInic)?0:$iLimiteInic;
		$iLimiteFin=empty($iLimiteFin)?10:$iLimiteFin;
		$sSql = "select sb.id, s.nombre, sb.precio_sugerido, sb.por_unica_vez, sb.habilitado, sb.servicios_id
				 from serviciobrindados sb
				 left join servicios s on s.id = sb.servicios_id
				 where s.nombre like '%$nombre%'
				 order by s.nombre
				 limit $iLimiteInic,$iLimiteFin
			    ";
		$aResultado = $this->Serviciobrindado->query($sSql);
		//echo($sSql);
		//echo($resultado);
		return($aResultado);
	}

	function getServiciosBrindados($iInicio=null, $iCant=null, $sTipo='JSON')
	{
		$iFin=$iInicio+$iCant;
		$aServiciosBr = $this->listarServiciosBrindados($iInicio, $iFin);
		$sFilas='';
		$n = sizeof($aServiciosBr);
		$sFilas="[";
		for($i=0; $i<$n; $i++)
		{
			//creamos la tabla de datos de ingresos
			$gd_id=				"id:\""				.$aServiciosBr[$i]['sb']['id']									. "\"";
			$gd_nombre=			"nombre:\""			.$aServiciosBr[$i]['s']['nombre']								. "\"";
			$gd_precio_sugerido="precio_sugerido:\"".'$ '.$aServiciosBr[$i]['sb']['precio_sugerido']						. "\"";
			$gd_por_unica_vez=	"por_unica_vez:\""	.(($aServiciosBr[$i]['sb']['por_unica_vez']==1)?'Si':'No')		. "\"";			
			$gd_habilitado=		"habilitado:\""		.(($aServiciosBr[$i]['sb']['habilitado']==1)?'Si':'No')			. "\"";						
			$gd_servicios_id=	"servicios_id:\""	.$aServiciosBr[$i]['sb']['servicios_id']						. "\"";

			($i<sizeof($aServiciosBr)-1)?$sDelimitador = ',':$sDelimitador = ']';
			$sFilas .= "{" 	. $gd_id 				. "," 
							. $gd_nombre 			. "," 
							. $gd_precio_sugerido 	. "," 
							. $gd_por_unica_vez 	. "," 							
							. $gd_habilitado 		. "," 							
							. $gd_servicios_id		. 
						"}" 
							. $sDelimitador . "\n";
			
		}
		$this->layout = false;
		echo $sFilas;
	}


	/*
	 * Genera una lista de los servicios brindados
	 */
	function listarServicios($nombre=null, $habilitado=null)
	{	
		$serviciosBrindados = array();
		$where=' where s.id=sb.servicios_id ';
		
		if (!empty($nombre))
		{
			$where.=(($where=='')?'' : ' and ')." s.nombre like '$nombre%' ";
		}
		if (!empty($habilitado))
		{
			$where.=(($where=='')?'' : ' and ').' sb.habilitado = 1 ';
		}
		$sql=" select s.id, s.nombre
			   from servicios s, serviciobrindados sb 
			   $where;
			   ";
		$resultado=$this->Serviciobrindado->query($sql);
		
		foreach ($resultado as $id => $servicio) 
		{
			if (!empty($servicio['s'])) 
			{
				$idsrv = $servicio['s']['id'];
				$serviciosBrindados["$idsrv"] =  $servicio['s']['nombre'] ;
			}
		}
		return $serviciosBrindados;
	}

/**
*
*Funcion que devuelve una lista de los servicios brindados por unica vez.
*
*Devuelve una lista de los id de los servicios brindados y un boolean si son por 
*unica vez o no.
*
*@return array
*
*/
	function seleccionarServiciosBrindadosPUV() 
	{
		$serviciosBrindados = array();
		
		$conditions = array ("por_unica_vez=1");
		$fields = array ('servicios_id', 'por_unica_vez');
		$resultado = $this->Serviciobrindado->findAll($conditions,$fields,null,null,1,1);
		//pr($resultado);
		foreach ($resultado as $id => $servicio) 
		{
			if (!empty($servicio['Serviciobrindado'])) 
			{
				$idsrv = $servicio['Serviciobrindado']['servicios_id'];
				$serviciosBrindadosPUV ["$idsrv"] =  $servicio['Serviciobrindado']['por_unica_vez'] ;
			}
		}

	 	//pr($serviciosBrindadosPUV);
		return $serviciosBrindadosPUV;
	}
	
/**
*
*Funcion que devuelve una lista de los precios asociados a los servicios brindados .
*
*Devuelve una lista de los id de los servicios brindados y su precio.
*
*@return array
*
*/
	function seleccionarServiciosPrecios() 
	{
		$serviciosPrecios = array();

		$fields = array ('servicios_id', 'precio_sugerido');
		$resultado = $this->Serviciobrindado->findAll(null,$fields,null,null,1,1);
		//pr($resultado);
		foreach ($resultado as $id => $servicio) 
		{
			if (!empty($servicio['Serviciobrindado'])) 
			{
				$idsrv = $servicio['Serviciobrindado']['servicios_id'];
				$serviciosPrecios ["$idsrv"] =  $servicio['Serviciobrindado']['precio_sugerido'] ;
			}
		}
	 	//pr($serviciosPrecios);
		return $serviciosPrecios;
	}
	
	
	function obtenerPrecioServicio($idServicio) 
	{
		$conditions = array('id'=>$idServicio);
		$servicio = $this->find($conditions);
		pr($servicio);
		return ($servicio['precio']);
	}
	
	//seteamos las variables de error para las vistas add y modify servicios brindados
	function setearVariables()
	{
		$this->set('status', 'Los datos del cliente deben ser completados.');
		$error = array
		(
			'Servicio/nombre' => 'El nombre ya existe o contiene caracteres no permitidos.',
			'Serviciobrindado/precio_sugerido' => 'El formato del precio no es correcto.'
		);
		$this->set('error',$error);
	}
	
	function add($idServicio,$precio=null, $porUnicaVez=null) 
	{
	//setea la variables de errores y status
	$this->setearVariables();
	//Si los campos no estan vacios intenta guardar los datos de la persona
	if(!empty($this->data['Serviciobrindado']))		
	{
			$this->data['Serviciobrindado']['servicios_id']=$idServicio;
			if(is_null($precio))
			{
				$this->data['Serviciobrindado']['precio_sugerido']=$precio;
			}
			$this->Serviciobrindado->save($this->data['Serviciobrindado']);
			
			/*if($precio==null)//obtengo el valor de la vista
				$precio = $this->data['Serviciobrindado']['precio_sugerido'];
			$insert_query = "insert into serviciobrindados (`servicios_id`,`precio_sugerido`,`por_unica_vez`) values ($idServicio,$precio,'$porUnicaVez')";
			$this->Serviciobrindado->execute($insert_query);*/
		return true;
	}
	else 
		return false;
	}
	
	//modifica un registro del servicio brindado
	function modify()
	{
		if(!empty($this->data['Serviciobrindado']))
		{
			$this->Serviciobrindado->save($this->data);
		}
	}

	function validarCampos()
	{
		$this->setearVariables();
		$this->Serviciobrindado->data = $this->data['Serviciobrindado'];
		if ($this->Serviciobrindado->validates())
			return true;
		else
			return false;
	}
	
	function setearSubMenu(){
		$aSubMenu[0]['title'] = 'Agregar';
		$aSubMenu[0]['href']	 = PATH . 'servicios/addBrindado';
		$aSubMenu[0]['image']	 = '';
		
		$aSubMenu[1]['title'] = 'Modificar';
		$aSubMenu[1]['href']	 = PATH . 'servicios/listarModifyBrindado';
		$aSubMenu[1]['image']	 = '';
		
		$aSubMenu[2]['title'] = 'Listar';
		$aSubMenu[2]['href']	 = PATH . 'serviciobrindados';
		$aSubMenu[2]['image']	 = '';
		
		$this->set('aSubMenu', $aSubMenu);
	
	}
}
?>